<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>count_relation [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_system.html">系统</a> / <a href="toc_system_database.html">数据库</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">count_relation</span><span data-if="c" style="display:none;">count_relation</span><span data-if="cpp" style="display:none;">CountRelation</span><span data-if="dotnet" style="display:none;">CountRelation</span><span data-if="python" style="display:none;">count_relation</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">count_relation</span><span data-if="c" style="display:none;">count_relation</span><span data-if="cpp" style="display:none;">CountRelation</span><span data-if="dotnet" style="display:none;">CountRelation</span><span data-if="python" style="display:none;">count_relation</span></code> — HALCON数据库中的条目数。</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>count_relation</b>( :  : <a href="#RelationName"><i>RelationName</i></a> : <a href="#NumOfTuples"><i>NumOfTuples</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>count_relation</b>(const char* <a href="#RelationName"><i>RelationName</i></a>, Hlong* <a href="#NumOfTuples"><i>NumOfTuples</i></a>)</code></p>
<p>
<code>Herror <b>T_count_relation</b>(const Htuple <a href="#RelationName"><i>RelationName</i></a>, Htuple* <a href="#NumOfTuples"><i>NumOfTuples</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>CountRelation</b>(const HTuple&amp; <a href="#RelationName"><i>RelationName</i></a>, HTuple* <a href="#NumOfTuples"><i>NumOfTuples</i></a>)</code></p>
<p>
<code>static Hlong <a href="HSystem.html">HSystem</a>::<b>CountRelation</b>(const HString&amp; <a href="#RelationName"><i>RelationName</i></a>)</code></p>
<p>
<code>static Hlong <a href="HSystem.html">HSystem</a>::<b>CountRelation</b>(const char* <a href="#RelationName"><i>RelationName</i></a>)</code></p>
<p>
<code>static Hlong <a href="HSystem.html">HSystem</a>::<b>CountRelation</b>(const wchar_t* <a href="#RelationName"><i>RelationName</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>CountRelation</b>(<a href="HTuple.html">HTuple</a> <a href="#RelationName"><i>relationName</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#NumOfTuples"><i>numOfTuples</i></a>)</code></p>
<p>
<code>static int <a href="HSystem.html">HSystem</a>.<b>CountRelation</b>(string <a href="#RelationName"><i>relationName</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>count_relation</b>(<a href="#RelationName"><i>relation_name</i></a>: str) -&gt; int</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">count_relation</span><span data-if="c" style="display:none">count_relation</span><span data-if="cpp" style="display:none">CountRelation</span><span data-if="com" style="display:none">CountRelation</span><span data-if="dotnet" style="display:none">CountRelation</span><span data-if="python" style="display:none">count_relation</span></code> returns the number of entries <a href="#NumOfTuples"><i><code><span data-if="hdevelop" style="display:inline">NumOfTuples</span><span data-if="c" style="display:none">NumOfTuples</span><span data-if="cpp" style="display:none">NumOfTuples</span><span data-if="com" style="display:none">NumOfTuples</span><span data-if="dotnet" style="display:none">numOfTuples</span><span data-if="python" style="display:none">num_of_tuples</span></code></i></a>
in the relation <a href="#RelationName"><i><code><span data-if="hdevelop" style="display:inline">RelationName</span><span data-if="c" style="display:none">RelationName</span><span data-if="cpp" style="display:none">RelationName</span><span data-if="com" style="display:none">RelationName</span><span data-if="dotnet" style="display:none">relationName</span><span data-if="python" style="display:none">relation_name</span></code></i></a> of the HALCON database since the
database was switched on with the <a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system</span><span data-if="c" style="display:none">set_system</span><span data-if="cpp" style="display:none">SetSystem</span><span data-if="com" style="display:none">SetSystem</span><span data-if="dotnet" style="display:none">SetSystem</span><span data-if="python" style="display:none">set_system</span></code></a> parameter
<i><span data-if="hdevelop" style="display:inline">'database'</span><span data-if="c" style="display:none">"database"</span><span data-if="cpp" style="display:none">"database"</span><span data-if="com" style="display:none">"database"</span><span data-if="dotnet" style="display:none">"database"</span><span data-if="python" style="display:none">"database"</span></i>.
If the database is disabled, <a href="#NumOfTuples"><i><code><span data-if="hdevelop" style="display:inline">NumOfTuples</span><span data-if="c" style="display:none">NumOfTuples</span><span data-if="cpp" style="display:none">NumOfTuples</span><span data-if="com" style="display:none">NumOfTuples</span><span data-if="dotnet" style="display:none">numOfTuples</span><span data-if="python" style="display:none">num_of_tuples</span></code></i></a> is 0 and in addition
a warning is raised if <i><span data-if="hdevelop" style="display:inline">'do_low_error'</span><span data-if="c" style="display:none">"do_low_error"</span><span data-if="cpp" style="display:none">"do_low_error"</span><span data-if="com" style="display:none">"do_low_error"</span><span data-if="dotnet" style="display:none">"do_low_error"</span><span data-if="python" style="display:none">"do_low_error"</span></i> is set with
<a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system</span><span data-if="c" style="display:none">set_system</span><span data-if="cpp" style="display:none">SetSystem</span><span data-if="com" style="display:none">SetSystem</span><span data-if="dotnet" style="display:none">SetSystem</span><span data-if="python" style="display:none">set_system</span></code></a>.
The state of the database can be
queried by the parameter <i><span data-if="hdevelop" style="display:inline">'database'</span><span data-if="c" style="display:none">"database"</span><span data-if="cpp" style="display:none">"database"</span><span data-if="com" style="display:none">"database"</span><span data-if="dotnet" style="display:none">"database"</span><span data-if="python" style="display:none">"database"</span></i> of <a href="get_system.html"><code><span data-if="hdevelop" style="display:inline">get_system</span><span data-if="c" style="display:none">get_system</span><span data-if="cpp" style="display:none">GetSystem</span><span data-if="com" style="display:none">GetSystem</span><span data-if="dotnet" style="display:none">GetSystem</span><span data-if="python" style="display:none">get_system</span></code></a>.
</p>
<p>The HALCON database is organized in five tables called relations. The
entries in this relations are called tuples (not to mix up
with HALCON tuples naming object arrays). If enabled,
the HALCON database contains the basic relations for region data,
image matrices, and XLDs, as well as the container relations for HALCON
objects and HALCON tuples (i.e., object arrays).
The HALCON objects region and image are constructed from elements from
the region-data relations and the image-matrix relations.
A region consists of a
pointer to a tuple in the region-data relation. An image consists
of a pointer to a tuple in the region-data relation and
additionally of one or more pointers to tuples in the matrix relation.
Multi-channel images have multiple matrix pointers.
</p>
<p>Both regions and images are called objects. A region can be considered
as the special case of an iconic object having no image matrices.
For reasons of an efficient memory management, the tuples of the
region-data relation and the image-matrix relation
will be used by different objects together.
Therefore there may be more images than image matrices.
Only the three low-level relations  <i><span data-if="hdevelop" style="display:inline">'image'</span><span data-if="c" style="display:none">"image"</span><span data-if="cpp" style="display:none">"image"</span><span data-if="com" style="display:none">"image"</span><span data-if="dotnet" style="display:none">"image"</span><span data-if="python" style="display:none">"image"</span></i>, <i><span data-if="hdevelop" style="display:inline">'region'</span><span data-if="c" style="display:none">"region"</span><span data-if="cpp" style="display:none">"region"</span><span data-if="com" style="display:none">"region"</span><span data-if="dotnet" style="display:none">"region"</span><span data-if="python" style="display:none">"region"</span></i>,
and <i><span data-if="hdevelop" style="display:inline">'XLD'</span><span data-if="c" style="display:none">"XLD"</span><span data-if="cpp" style="display:none">"XLD"</span><span data-if="com" style="display:none">"XLD"</span><span data-if="dotnet" style="display:none">"XLD"</span><span data-if="python" style="display:none">"XLD"</span></i> are of relevance to the memory consumption.
Image objects (regions as well as images) consist only of references
on region and matrix data and therefore only need a couple of bytes
of memory.
</p>
<p>Possible values for <a href="#RelationName"><i><code><span data-if="hdevelop" style="display:inline">RelationName</span><span data-if="c" style="display:none">RelationName</span><span data-if="cpp" style="display:none">RelationName</span><span data-if="com" style="display:none">RelationName</span><span data-if="dotnet" style="display:none">relationName</span><span data-if="python" style="display:none">relation_name</span></code></i></a>:
</p>
<dl class="generic">

<dt><b>'image':</b></dt>
<dd><p>

Image matrices. One matrix may be the component of multiple images
(no redundant storage).
</p></dd>

<dt><b>'region':</b></dt>
<dd><p>

Regions and image domains.
One region may be the component of multiple image objects
(no redundant storage).
</p></dd>

<dt><b>'XLD':</b></dt>
<dd><p>

eXtended Line Description: Contours, polygons, parallels,
lines, etc. XLD data types don't have gray values and are stored
with subpixel accuracy.
</p></dd>

<dt><b>'object':</b></dt>
<dd><p>

Iconic objects. Composed of a region (see <i><span data-if="hdevelop" style="display:inline">'region'</span><span data-if="c" style="display:none">"region"</span><span data-if="cpp" style="display:none">"region"</span><span data-if="com" style="display:none">"region"</span><span data-if="dotnet" style="display:none">"region"</span><span data-if="python" style="display:none">"region"</span></i>) and
optionally image matrices (see <i><span data-if="hdevelop" style="display:inline">'image'</span><span data-if="c" style="display:none">"image"</span><span data-if="cpp" style="display:none">"image"</span><span data-if="com" style="display:none">"image"</span><span data-if="dotnet" style="display:none">"image"</span><span data-if="python" style="display:none">"image"</span></i>).
</p></dd>

<dt><b>'tuple':</b></dt>
<dd><p>

In the compact mode, tuples of iconic objects are stored as a
surrogate in this relation.
Instead of working with the individual object keys, only this
tuple key is used. It depends on the host language, whether the
objects are passed individually (e.g., C++) or as tuples (e.g.,
C).
</p></dd>
</dl>
<p>Certain database objects will be created already by 该算子
<a href="reset_obj_db.html"><code><span data-if="hdevelop" style="display:inline">reset_obj_db</span><span data-if="c" style="display:none">reset_obj_db</span><span data-if="cpp" style="display:none">ResetObjDb</span><span data-if="com" style="display:none">ResetObjDb</span><span data-if="dotnet" style="display:none">ResetObjDb</span><span data-if="python" style="display:none">reset_obj_db</span></code></a> and therefore have to be available all the time
(the undefined gray value component, the objects 'full'
(FULL_REGION in HALCON/C) and 'empty' (EMPTY_REGION in HALCON/C)
as well as the herein included empty and full region).
By calling <a href="get_channel_info.html"><code><span data-if="hdevelop" style="display:inline">get_channel_info</span><span data-if="c" style="display:none">get_channel_info</span><span data-if="cpp" style="display:none">GetChannelInfo</span><span data-if="com" style="display:none">GetChannelInfo</span><span data-if="dotnet" style="display:none">GetChannelInfo</span><span data-if="python" style="display:none">get_channel_info</span></code></a>, 该算子 therefore appears
correspondingly also as 'creator' of the full and empty region.
该算子 can be used for example to check the completeness
of the <a href="clear_obj.html"><code><span data-if="hdevelop" style="display:inline">clear_obj</span><span data-if="c" style="display:none">clear_obj</span><span data-if="cpp" style="display:none">ClearObj</span><span data-if="com" style="display:none">ClearObj</span><span data-if="dotnet" style="display:none">ClearObj</span><span data-if="python" style="display:none">clear_obj</span></code></a> operation.</p>
<h2 id="sec_attention">注意</h2>
<p>Collecting database information is not threadsafe when passing iconic
objects between threads, meaning when deleting objects in a different
thread than generating them.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="RelationName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">RelationName</span><span data-if="c" style="display:none">RelationName</span><span data-if="cpp" style="display:none">RelationName</span><span data-if="com" style="display:none">RelationName</span><span data-if="dotnet" style="display:none">relationName</span><span data-if="python" style="display:none">relation_name</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Relation of interest of the HALCON database.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'object'</span>
    <span data-if="c" style="display:none">"object"</span>
    <span data-if="cpp" style="display:none">"object"</span>
    <span data-if="com" style="display:none">"object"</span>
    <span data-if="dotnet" style="display:none">"object"</span>
    <span data-if="python" style="display:none">"object"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'XLD'</span><span data-if="c" style="display:none">"XLD"</span><span data-if="cpp" style="display:none">"XLD"</span><span data-if="com" style="display:none">"XLD"</span><span data-if="dotnet" style="display:none">"XLD"</span><span data-if="python" style="display:none">"XLD"</span>, <span data-if="hdevelop" style="display:inline">'image'</span><span data-if="c" style="display:none">"image"</span><span data-if="cpp" style="display:none">"image"</span><span data-if="com" style="display:none">"image"</span><span data-if="dotnet" style="display:none">"image"</span><span data-if="python" style="display:none">"image"</span>, <span data-if="hdevelop" style="display:inline">'object'</span><span data-if="c" style="display:none">"object"</span><span data-if="cpp" style="display:none">"object"</span><span data-if="com" style="display:none">"object"</span><span data-if="dotnet" style="display:none">"object"</span><span data-if="python" style="display:none">"object"</span>, <span data-if="hdevelop" style="display:inline">'region'</span><span data-if="c" style="display:none">"region"</span><span data-if="cpp" style="display:none">"region"</span><span data-if="com" style="display:none">"region"</span><span data-if="dotnet" style="display:none">"region"</span><span data-if="python" style="display:none">"region"</span>, <span data-if="hdevelop" style="display:inline">'tuple'</span><span data-if="c" style="display:none">"tuple"</span><span data-if="cpp" style="display:none">"tuple"</span><span data-if="com" style="display:none">"tuple"</span><span data-if="dotnet" style="display:none">"tuple"</span><span data-if="python" style="display:none">"tuple"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="NumOfTuples" class="parname"><b><code><span data-if="hdevelop" style="display:inline">NumOfTuples</span><span data-if="c" style="display:none">NumOfTuples</span><span data-if="cpp" style="display:none">NumOfTuples</span><span data-if="com" style="display:none">NumOfTuples</span><span data-if="dotnet" style="display:none">numOfTuples</span><span data-if="python" style="display:none">num_of_tuples</span></code></b> (output_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Number of tuples in the relation.</p>
</div>
<h2 id="sec_example_all">例程 (HDevelop)</h2>
<pre class="example">
* Close the graphics window in order to close the graphics stack,
* which would influence the measurement.
dev_close_window ()
* Enable the measurement.
set_system ('database','true')
*
count_relation ('image', I1)
count_relation ('region', R1)
count_relation ('XLD', X1)
count_relation ('object', O1)
count_relation ('tuple', T1)
*
* Result:
* I1 = 0
* R1 = 0
* X1 = 0
* O1 = 0
* T1 = 0
*
read_image (Patras, 'patras')
*
count_relation ('image', I2)
count_relation ('region', R2)
count_relation ('XLD', X2)
count_relation ('object', O2)
count_relation ('tuple', T2)
*
* I2 = 3  (three channels of the rgb image 'patras')
* R2 = 1  (the image domain of the image 'patras')
* X2 = 0  (no XLD data)
* O2 = 1  (the iconic object holding the channels and the domain)
* T2 = 0  (no empty object or object array )
</pre>
<h2 id="sec_result">结果</h2>
<p>If the parameter is correct, 该算子 <code><span data-if="hdevelop" style="display:inline">count_relation</span><span data-if="c" style="display:none">count_relation</span><span data-if="cpp" style="display:none">CountRelation</span><span data-if="com" style="display:none">CountRelation</span><span data-if="dotnet" style="display:none">CountRelation</span><span data-if="python" style="display:none">count_relation</span></code>
返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    . Otherwise an exception is raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="reset_obj_db.html"><span data-if="hdevelop" style="display:inline">reset_obj_db</span><span data-if="c" style="display:none">reset_obj_db</span><span data-if="cpp" style="display:none">ResetObjDb</span><span data-if="com" style="display:none">ResetObjDb</span><span data-if="dotnet" style="display:none">ResetObjDb</span><span data-if="python" style="display:none">reset_obj_db</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="set_system.html"><span data-if="hdevelop" style="display:inline">set_system</span><span data-if="c" style="display:none">set_system</span><span data-if="cpp" style="display:none">SetSystem</span><span data-if="com" style="display:none">SetSystem</span><span data-if="dotnet" style="display:none">SetSystem</span><span data-if="python" style="display:none">set_system</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="clear_obj.html"><span data-if="hdevelop" style="display:inline">clear_obj</span><span data-if="c" style="display:none">clear_obj</span><span data-if="cpp" style="display:none">ClearObj</span><span data-if="com" style="display:none">ClearObj</span><span data-if="dotnet" style="display:none">ClearObj</span><span data-if="python" style="display:none">clear_obj</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
